In the current development of range extension (RExt) for High Efficiency Video Coding (HEVC) standard, Screen Content Coding (SCC) is investigated to provide efficiently compression for non-camera captured video contents in various formats including YUV444, RGB444, YUV422, and YUV420. During the SCC development, various coding tools including Intra Picture Block Copy (IntraBC) have been adopted. IntraBC is a block matching technique in which a coding unit (CU) is predicted as a displacement from an already reconstructed block of samples in the same picture. IntraBC is especially effective for screen content video since it utilizes correlation among repeating patterns which typically occurs in text or still graphics in the picture. The IntraBC technique was first disclosed in JCTVC-M0350 (Budagavi et al., AHG8. Video coding using Intra motion compensation, JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG11 13th Meeting: Incheon, KR, 18-26 Apr. 2013, Document: JCTVC-M0350). FIG. 1 shows an example according to JCTVC-M0350, where a current CU 110 in a current picture 10 is coded using Intra MC (motion compensation). A prediction block 120 in the current picture 10 is located from the current CU 110 according to a displacement vector 112. In this example, the search area for the current CU is limited to a current CTU (coding tree unit) 130, a left CTU 140, and a left-left CTU 150 in the current picture 10. The prediction block 120 is obtained from the already reconstructed region of the current picture 10. The displacement vector 112, also called the block vector (BV), and residual for the current CU 110 are coded. In HEVC, a picture is initially divided into CTUs which are then divided for each luma or chroma component into coding tree blocks (CTBs). Each CTB is recursively partitioned into one or more coding units (CUs) according to quadtree structure. CUs may be divided into multiple prediction units (PUs) during a prediction phase of video coding. To code the prediction residual after the prediction phase, each CU is divided into multiple transform units (TUs) for block transform and quantization.
Some modifications for IntraBC are disclosed in JCTVC-N0256 (Pang et al., Non-RCE3: Intra Motion Compensation with 2-D MVs, JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC 1/SG 29/WG11 14th Meeting: Vienna, AT, 25 Jul.-2 Aug. 2013, Document: JCTVC-N0256) to extend the IntraBC technique to support two dimensional BVs. Furthermore, a BV coding method in JCTVC-N0256 uses a left or above BV as a BV predictor and codes resulting BV differences (BVD). A flag is signaled first to indicate whether the BVD is zero, then an exponential-Golomb of 3rd order code is used to encode the remaining absolute level of the BVD when the BVD is not zero. The sign of the BVD is also coded by a flag. Another coding method in JCTVC-N0256 uses no predictor for BV and the BV is coded using the exponential-Golomb codes. Interpolation filters are removed to allow pipeline processing for the IntraBC technique.
A valid BV restricts the search area to already reconstructed area in the current picture. A ladder shape Intra BC search range constraint is adopted in SCM-3.0 (Screen content coding test model-3.0) to allow parallel processing in wavefront parallel process (WPP). An example of the ladder shape IntraBC search range is shown in FIG. 2, a valid search area for an Intra BC block in a current CTU 212 is constrained to the shaded CTUs 210 and reconstructed blocks in the current CTU 212.
In the 20th JCT-VC meeting in Geneva, February 2015, signaling of IntraBC is unified with Inter coding mode. The current picture is treated as a reference picture and inserted into one or both reference picture lists for blocks coded in IntraBC mode. Block vector prediction and coding in Intra BC mode become the same as motion vector prediction and coding in Inter mode. Although this unification simplifies the design for video encoders and decoders, there are some remaining issues needed to be solved. One of the issues is the current picture may not always be included in the reference picture list. One or more syntax element signaled in the bitstream restricts a maximum size allowed in the reference picture list so one or more reference pictures may be eliminated from the reference picture list during reference picture list construction. A method to guarantee the existence of the current picture in the reference picture list for blocks coded in IntraBC mode is desired.